import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex) // 统一管理组件状态

export default new Vuex.Store({
  // 声明数据全局可使用
  state () {
    return {
      loginStatus: '已登录',
      num1: 0
    }
  },
  // 获取器 相当于计算属性，具有缓存功能
  getters: {
    len (status) {
      console.log('getters执行了')
      return status.loginStatus.length
    }
  },
  // 唯一改变数据的地方 要求同步
  mutations: {
    changeCount (state, num) {
      state.num1 = num
      console.log('mutations触发了' + num)
    }
  },
  // 异步操作提交mutations
  actions: {
    delayChangeCount (store, num) {
      setTimeout(() => {
        store.commit('changeCount', num)
      }, 1000)
    }
  },
  // 分割store中的数据  a、b都是文件  调用时需要加a、b    this.$store.a.getters.len
  modules: {
    // a:{
    //     num1
    // },
    // b:{
    //     loginStatus
    // }
  }
})
